Public Member Functions | |
| __construct () | |
| showForm ($file_upload=false, $copyFile=null) | |
| printSubFolder ($fileID, $sql_add, &$folderArr, $COUNT=0, $layer="··") | |
| fileSizeOK ($size) | |
| fileExtOK ($name) | |
| sendEmail ($fileID, $toTeachers=false) | |
| resolveForm ($data) | |
Private Member Functions | |
| uploadFile ($data) | |
Private Attributes | |
| $maxFileSize | |
| $forbiddenFileExtensions | |
| $role = null | |
| $team = null | |
Definition at line 54 of file class.insert.inc.php.
| Insert::__construct | ( | ) |
Konstruktor. public
Definition at line 84 of file class.insert.inc.php.
References $_SESSION.
00084 { 00085 global $settings; 00086 if (is_numeric($settings['filemanager_max_filesize'])) $this->maxFileSize = $settings['filemanager_max_filesize']; 00087 $this->forbiddenFileExtensions = $settings['filemanager_forbidden_extensions']; 00088 if (isset($_SESSION["roleID"])) { 00089 $this->role = new Role($_SESSION["roleID"]); 00090 } 00091 if (isset($_SESSION["teamID"])) { 00092 $this->team = new Team($_SESSION["teamID"]); 00093 } 00094 }
| Insert::fileExtOK | ( | $ | name | ) |
Prüft ob der Dateityp laut Config-File erlaubt ist public
| string | $name - Dateiname |
Definition at line 326 of file class.insert.inc.php.
Referenced by resolveForm().
00326 { 00327 if ($this->forbiddenFileExtensions) { 00328 $pos = strrpos($name, "."); 00329 if ($pos) { 00330 $ext = substr($name, $pos+1); 00331 if (is_array($this->forbiddenFileExtensions)) { 00332 foreach($this->forbiddenFileExtensions as $value) { 00333 if (strtolower($ext) == strtolower($value)) return false; 00334 } 00335 } elseif (strtolower($ext) == strtolower($this->forbiddenFileExtensions)) return false; 00336 } 00337 } 00338 return true; 00339 }
| Insert::fileSizeOK | ( | $ | size | ) |
Prüft ob die Dateigröße dem Limit im Config-File entspricht public
| integer | $size - Größe der Datei |
Definition at line 313 of file class.insert.inc.php.
Referenced by resolveForm().
| Insert::printSubFolder | ( | $ | fileID, | |
| $ | sql_add, | |||
| &$ | folderArr, | |||
| $ | COUNT = 0, |
|||
| $ | layer = "··" | |||
| ) |
erstellt eine baumstrukur aller Ordner auf die der User Schreibrechte hat und die er sehen darf private
| ezsql | [$fileID] - | |
| string | [$sql_add] - SQL zusatz, ist Usergruppenabhaenigig | |
| array | [$folderArr] - Array der Ermittelten Folder, ist ein Zeiger der Uebergeben wird | |
| int | [$COUNT] - Ist der Array Zaehler von folderArr | |
| string | [$layer] - Sind die zeichen vorm Ordnernamen fuer visualisierung der baumstrukur |
Definition at line 297 of file class.insert.inc.php.
References $_SESSION, and $db.
Referenced by showForm().
00297 { 00298 global $db; 00299 $folders = $db->get_results("SELECT fileID, link, student_write, userID FROM filelist WHERE parent_object='".$fileID."' AND courseID=".$_SESSION['course']." AND type='folder' $sql_add ORDER BY name"); 00300 if ($folders) foreach($folders as $folder) { 00301 $folderArr[$COUNT][0] = $layer." • ".Data::toHTML($folder->link, false); 00302 $folderArr[$COUNT++][1] = $folder->fileID; 00303 $COUNT = $this->printSubFolder($folder->fileID, $sql_add, $folderArr, $COUNT, $layer."··"); 00304 } 00305 return $COUNT; 00306 }
| Insert::resolveForm | ( | $ | data | ) |
Wertet das Formular aus und traegt die Daten in die Datenbank ein public
| array | $data - Array mit dem Formulareintraegen |
Definition at line 386 of file class.insert.inc.php.
References $_SESSION, $db, fileExtOK(), fileSizeOK(), sendEmail(), and uploadFile().
00386 { 00387 global $db, $EZSQL_ERROR; 00388 echo "<table>"; 00389 /************************************ FEHLERUEBERPRUEFUNG BEGIN***********************************************/ 00390 if (!in_array($data["type"], array("folder", "link", "file", "ROOT"))) { 00391 $ERROR = "Bitte wählen Sie aus, ob Sie einen Link oder einen Ordner erstellen wollen."; 00392 Output::errorMessage($ERROR, 2); 00393 echo "</table>"; 00394 return false; 00395 } 00396 if ($data['link'] == "") { 00397 switch ($data['type']) { 00398 case 'ROOT': 00399 case 'folder': 00400 $ERROR = "Sie haben keinen Ordnernamen angegeben!"; 00401 break; 00402 00403 case 'link': 00404 $ERROR = "Sie haben keinen Link angegeben!"; 00405 break; 00406 00407 case 'file': 00408 $ERROR = "Sie haben keine Datei ausgewählt!"; 00409 break; 00410 } 00411 Output::errorMessage($ERROR, 2); 00412 } 00413 if ($data['name'] == "") { 00414 switch ($data['type']) { 00415 case 'ROOT': 00416 case 'folder': 00417 $ERROR = "Sie haben keinen erläuternden Ordnernamen (Tooltip) angegeben!"; 00418 break; 00419 00420 case 'link': 00421 $ERROR = "Sie haben keinen Namen für den Link angegeben!"; 00422 break; 00423 00424 case 'file': 00425 $ERROR = "Sie haben keinen Namen für die Datei angegeben!"; 00426 break; 00427 } 00428 if (!empty($ERROR)) Output::errorMessage($ERROR, 2); 00429 } 00430 if ($data['parent_object'] == "" && $data['type'] != 'ROOT') { 00431 $ERROR = "Sie haben keinen Zielordner ausgewählt!"; 00432 Output::errorMessage($ERROR, 2); 00433 } 00434 if ($data['type'] == 'link') { 00435 if (!Utilities::validateURL($data['link'])) { 00436 $ERROR = "Sie haben eine ungültige URL angegeben!"; 00437 Output::errorMessage($ERROR, 2); 00438 } 00439 if (strlen($data['name']) > 40) { 00440 $ERROR = "Linkname darf höchstens 40 Zeichen lang sein."; 00441 Output::errorMessage($ERROR, 2); 00442 } 00443 } 00444 if ($data['type'] == 'file') { 00445 if ($data['orig_filename'] == '' || strlen($data['extension']) > 5 || strlen($data['extension']) < 0) { 00446 $ERROR = "Keine Datei ausgewählt oder Dateiendung ungültig! (Länge hinter . 1-4)"; 00447 Output::errorMessage($ERROR, 2); 00448 if ($data['tmpfileTmpName'] != '') unlink($data['tmpfileTmpName']); 00449 } elseif (!($this->fileSizeOK($data['size']))) { 00450 $ERROR = "Datei ist entweder über der zulässigen Größe, oder sie ist leer!"; 00451 Output::errorMessage($ERROR, 2); 00452 if ($data['tmpfileTmpName'] != '') unlink($data['tmpfileTmpName']); 00453 } elseif (!($this->fileExtOK($data['orig_filename']))) { 00454 $ERROR = "Dateityp ist nicht erlaubt!"; 00455 Output::errorMessage($ERROR, 2); 00456 if ($data['tmpfileTmpName'] != '') unlink($data['tmpfileTmpName']); 00457 } 00458 } 00459 if ($data['type'] == 'folder') { 00460 if (strlen($data['link']) > 20) { 00461 $ERROR = "Ordnername darf höchstens 20 Zeichen lang sein."; 00462 Output::errorMessage($ERROR, 2); 00463 } 00464 } 00465 // Wenn bis hierher schon ein Fehler festgestellt wurde bricht er ab 00466 if (isset($ERROR)) { 00467 echo "</table>"; 00468 return false; 00469 } 00470 /************************************ FEHLERUEBERPRUEFUNG ENDE ***********************************************/ 00471 switch ($data['type']) { 00472 case 'ROOT': // Hauptordner anlegen 00473 $data['type'] = 'folder'; 00474 $data['parent_object'] = 0; 00475 $type = "von Hauptordner"; 00476 break; 00477 00478 case 'folder': // Unterordner anlegen 00479 $type = "von Ordner"; 00480 break; 00481 00482 case 'link': 00483 $type = "von Link"; 00484 break; 00485 00486 case 'file': 00487 $type = "von Datei"; 00488 break; 00489 } 00490 // Baut die SQL Abfrage anhand des Arrays data auf. 00491 // Alle Felder ohne "tmp" werden als FeldName benutzt und ihr Wert in die DB eingetragen 00492 $SQL_keys = $SQL_values = ''; 00493 foreach($data as $key => $value) { 00494 if (!strstr($key, "tmp")) { 00495 $SQL_keys.= $key.','; 00496 $SQL_values.= "'".Data::toMysql($value) ."',"; 00497 } 00498 } 00499 // Ordner existiert schon ?? 00500 if ($data['type'] == 'folder' && ($db->get_var("SELECT fileID FROM filelist WHERE parent_object='".$data['parent_object']."' AND courseID =".$data['courseID']." AND link='".$data['link']."' LIMIT 1") != "")) { 00501 Output::errorMessage("Ein Ordner mit dem selben Namen existiert schon in diesem Ordner.<br/>Wählen Sie bitte einen anderen Namen.", 2); 00502 echo "</table>"; 00503 return false; 00504 } 00505 // Selber Link schon in diesem Ordner vorhanden ?? 00506 if ($data['type'] == 'link' && $db->get_var("SELECT fileID FROM filelist WHERE parent_object='".$data['parent_object']."' AND courseID=".$_SESSION['course']." AND link='".$data['link']."' LIMIT 1") != "") { 00507 Output::errorMessage("Ein Link mit dem selben Namen existiert bereits in diesem Ordner!", 2); 00508 echo "</table>"; 00509 return false; 00510 } 00511 $SQL = "INSERT INTO filelist (".substr($SQL_keys, 0, -1) .") VALUES (".substr($SQL_values, 0, -1) .")"; // SQL Abfrage ohne Endene Kommas 00512 $errorCount = count($EZSQL_ERROR); 00513 $db->query($SQL); 00514 $data['fileID'] = $db->insert_id; 00515 if (count($EZSQL_ERROR) > $errorCount || $data['fileID'] < 0) { 00516 Output::errorMessage("Fehler beim Anlegen ".$type." in der Datenbank!"); 00517 echo "</table>"; 00518 return false; 00519 } elseif ($data['type'] == 'file') { 00520 if (!$this->uploadFile($data)) { 00521 $db->query("DELETE FROM filelist WHERE fileID='${data['fileID']}'"); 00522 $data['fileID'] = ""; 00523 Output::errorMessage("Aktion nicht erfolgreich durchgeführt!", 2); 00524 echo "</table>"; 00525 return false; 00526 } 00527 } 00528 if (isset($this->role)) { 00529 RoleArtefacts::setRoleForItem(RESSOURCE, $data["fileID"], $_SESSION["roleID"]); 00530 } 00531 if (isset($this->team)) { 00532 TeamArtefacts::setTeamForItem(RESSOURCE, $data["fileID"], $_SESSION["teamID"]); 00533 } 00534 if ($data['fileID'] && $data['visible_type'] != 1 && isset($data['tmpfileVisibleList'])) { 00535 // Spezielle UserSichtbarkeit in DB eintragen 00536 $errorCount = count($EZSQL_ERROR); 00537 foreach($data['tmpfileVisibleList'] as $value) { 00538 $db->query("INSERT INTO filevisible (fileID,userID) VALUES(".$data['fileID'].",".$value.")"); 00539 } 00540 if (count($EZSQL_ERROR) > $errorCount) { 00541 Output::errorMessage("Aktion nicht erfolgreich durchgeführt!", 2); 00542 echo "</table>"; 00543 return false; 00544 } 00545 } 00546 if ($data['type'] != 'file') { 00547 if ($data['tmpemail'] || $data['tmpteacherEMail']) { 00548 if ($this->sendEmail($data['fileID'], ($data['tmpteacherEMail'] && !$data['tmpemail']))) Output::echoMessage("Benachrichtigungs-Mails versandt.", 2); 00549 else Output::errorMessage("Benachrichtigungs-Mails konnten nicht versandt werden!", 2); 00550 } 00551 } 00552 Output::echoMessage("Aktion wurde erfolgreich durchgeführt!", 2); 00553 echo "</table>"; 00554 unset($_POST); 00555 if ($data['type'] == 'file') { 00556 // hochgeladene Datei indizieren 00557 $spider = new Spider(); 00558 $spider->start("add-file", $data['fileID']); 00559 } 00560 return $data["fileID"]; 00561 }
| Insert::sendEmail | ( | $ | fileID, | |
| $ | toTeachers = false | |||
| ) |
Versendet die Benachrichtigungsmail für eine neue hochgeladene Datei. public
| integer | $fileID - die ID der hochgeladenen Datei | |
| bool | $toTeachers - ob die Emails nur an Dozenten geschickt werden sollen |
Definition at line 347 of file class.insert.inc.php.
References $_SESSION, and $db.
Referenced by resolveForm(), and uploadFile().
00347 { 00348 global $db, $settings; 00349 if (!is_numeric($fileID)) return false; 00350 $file = $db->get_row("SELECT * FROM filelist WHERE fileID='$fileID'"); 00351 if ($file) { 00352 $email = new Email($_SESSION['userid']); 00353 if ($toTeachers) { 00354 if ($file->courseID == 0) { 00355 $query = "SELECT ID FROM user WHERE Usergroup=3"; 00356 } else { 00357 $query = "SELECT ID 00358 FROM user JOIN user_course ON ID=userID 00359 WHERE courseID='".$file->courseID."' AND 00360 ((differentUsergroup=0 AND Usergroup=3) OR differentUsergroup=3)"; 00361 } 00362 } else { 00363 if ($file->courseID == 0) { 00364 $query = "SELECT ID FROM user WHERE Invisible=0"; 00365 } else { 00366 $query = "SELECT userID FROM user_course WHERE courseID ='".$file->courseID."'"; 00367 } 00368 } 00369 $users = $db->get_col($query); 00370 if ($file->courseID > 0) { 00371 $courseName = $db->get_var("SELECT Name FROM courses WHERE ID='".$file->courseID."'"); 00372 } 00373 $user = $db->get_row("SELECT Vorname, Nachname FROM user WHERE ID='".$file->userID."'"); 00374 $subject = $settings["label"].": Neue Ressource im ".(empty($courseName) ? "Foyer" : "Kurs \"$courseName\""); 00375 $message = "Guten Tag,\n\n".$user->Vorname." ".$user->Nachname." hat ".($file->type == "link" ? "einen neuen Link" : ($file->type == "file" ? "eine neue Datei" : "einen neuen Ordner")) ." mit der Bezeichnung\n\n\t".$file->name.(empty($file->description) ? "" : "\n\n\t".$file->description) ."\n\nim ".(empty($courseName) ? "Foyer" : "Kurs \"$courseName\"") ." bereitgestellt".($file->type == "link" ? ":\n\n\t<".$file->link.">" : ".") ."\n\nViele Grüße,\n\nIhr Kursdozent"; 00376 return $email->sendMessageToUser($subject, $users, $message); 00377 } 00378 return false; 00379 }
| Insert::showForm | ( | $ | file_upload = false, |
|
| $ | copyFile = null | |||
| ) |
Generiert Formular für Insert public
Definition at line 100 of file class.insert.inc.php.
References $_SESSION, $db, and printSubFolder().
00100 { 00101 global $db, $EZSQL_ERROR; 00102 // Initialisierung 00103 $MaxFileSize = $this->maxFileSize; 00104 $ForbiddenFileExtensions = $this->forbiddenFileExtensions; 00105 $time = time(); 00106 $sql_add = ""; 00107 $heute = getdate(); 00108 $course = $_SESSION['course']; 00109 $form = new Formular(); 00110 // INITIALISIERUNG von Kalender Anzeige 00111 // DateSelection Objekt erzeugen und das heutige (start-) Datum einstellen 00112 $calendar = new DateSelection($heute['mday'], $heute['mon'], $heute['year'], $heute['hours'], $heute['minutes']); 00113 //Javascript deaktivieren 00114 $calendar->autoUpdate = false; 00115 //Name des Formulars einstellen 00116 $calendar->formName = "insert"; 00117 //Die Ausgabestrings löschen (keine Bezeichner vor den Auswahlfeldern) 00118 $calendar->clearStrings(); 00119 00120 // URL ins Feld einfügen und Radio Button vorselektieren, sofern übergeben 00121 if(isset($_GET['url'])) { 00122 $actionChecked = 'link'; 00123 $linkUrl = $_GET['url']; 00124 } 00125 else { 00126 $linkUrl = ''; 00127 $actionChecked = ''; 00128 } 00129 00130 // Link Name ins Feld einfügen, sofern übergeben 00131 if(isset($_GET['name'])) 00132 $linkName = $_GET['name']; 00133 else 00134 $linkName = ''; 00135 00136 // BEGIN von Formular erstellen 00137 // Init 00138 $form->setFormHead("insert", "", "post", "multipart/form-data", "onsubmit=\"".(!$file_upload ? "if (document.getElementById('link_ID').checked == false && document.getElementById('folder_ID').checked == false".(($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"]) ? " && document.getElementById('ROOT_ID').checked == false" : "") .") { alert('Bitte wählen Sie, ob Sie einen Link oder Ordner erstellen wollen!'); return false; } ": 00139 "") ."if (document.getElementById('folder').value == ''".(!$file_upload && (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"])) ? " && document.getElementById('ROOT_ID').checked == false" : "") .") { alert('Bitte wählen Sie einen Zielordner!'); return false; }\""); 00140 $form->setTemplate("<table width='100%'>", "<tr valign='top'><td class='tableCell' width='50%'>", "<td class='tableCell' width='50%'>"); // Setzt die UmgebungsTags 00141 $form->setButtons(1, "Abschicken"); //Setzt die Buttons 00142 if (isset($this->role)) { 00143 $form->addRawCode("<tr><td class='message' colspan='2'>Sie nehmen zur Zeit die Rolle <strong>".Data::toHTML($this->role->getName($_SESSION["gender"]), false) ."</strong> ein.<br />Wenn Sie ".($file_upload ? "eine Datei hochladen, wird diese" : "einen Ordner oder Link erstellen, wird dieser") ." unter Ihrem Rollennamen veröffentlicht.</td></tr>"); 00144 } 00145 // TrennZeile 00146 $form->addRawCode("<tr><td class='tableHead' colspan='2'>Benötigte Einstellungen</td></tr>"); // Fuegt eine Ueberschriftszeile ein 00147 // Wenn eine Datei hochgeladen werden soll 00148 if ($file_upload) { 00149 $form->addInput("hidden", "type", "", 1, "file"); 00150 $form->addInput("hidden", "MAX_FILE_SIZE", "", 1, $MaxFileSize*1024*1024); 00151 00152 // MultiUpload: Titel fuer jede einzelne Upload-Moeglichkeit 00153 $form->addRawCode("</table><div id='uploads'><table width='100%'><tr valign='top'> 00154 <td class='tableHead' colspan='2'><div style='text-align:center;'>Dateiinformationen für 1. Datei</div></td></tr>"); 00155 00156 $name = (!is_null($copyFile)) ? $copyFile->getName() : ""; 00157 $form->addInput("text", "name[]", "Bitte geben Sie einen aussagekräftigen Namen für die Datei ein:<br/><span class='text10'>(max. 40 Zeichen)</span>", 50, $name, 40); 00158 // Beschreibung fuer DateiName auswahlen wird konstruiert (mit erlaubter Endung und max Groesse) 00159 if ( !is_null( $copyFile ) ) { 00160 $form->addInput("hidden", "copyFile", "", 1, $copyFile->getID()); 00161 $form->addRawCode("<tr><td>Datei kopieren</td><td>".$copyFile->getOrigFileName()."</td></tr>"); 00162 } else { 00163 $string = "Bitte wählen Sie eine Datei aus:<br/>"; 00164 $string.= "<span class='text10'>"; 00165 if ($MaxFileSize) $string.= "max. ".$MaxFileSize." MB"; 00166 if ($MaxFileSize && $ForbiddenFileExtensions) $string.= ", "; 00167 if ($ForbiddenFileExtensions) { 00168 $string.= "keine "; 00169 if (is_array($ForbiddenFileExtensions)) { 00170 foreach($ForbiddenFileExtensions as $value) $string.= ".".$value." "; 00171 } else $string.= ".".$ForbiddenFileExtensions." Dateien"; 00172 } 00173 $string.= "</span>"; 00174 $form->addInput("file", "userfile[]", $string, 34); 00175 00176 $form->addTextArea("comment[]", "Datei-Beschreibung (optional)", 40, 3, ""); 00177 00178 // MultiUpload: Link zu JavaScript-Funktion um zusaetzliches Upload-Formular einzublenden 00179 $form->addRawCode("</table></div><table width='100%'><tr valign='top'><td class='tableCell' colspan='2'> 00180 <p style='text-align:right;'> 00181 <script>document.write(\"<a href='#' onclick='one_more_upload(); return false;'>Mehr Dateien Uploaden</a>\");</script> 00182 </p> 00183 </td></tr>"); 00184 } 00185 } else { // Wenn Ordner oder Link erstellt werden soll 00186 $folderJS = (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) ? "document.getElementById('student_write').disabled=false;" : "") ."document.getElementById('userfileLink').style.display='none';"."document.getElementById('userfileFolder').style.display='inline';"."document.getElementById('nameLink').style.display='none';"."document.getElementById('nameFolder').style.display='inline';"; 00187 $radio = array(array("Link hinzufügen", "link", "onclick=\"".(($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) ? "document.getElementById('student_write').disabled=true;" : "") ."document.getElementById('userfileLink').style.display='inline';"."document.getElementById('userfileFolder').style.display='none';"."document.getElementById('nameLink').style.display='inline';"."document.getElementById('nameFolder').style.display='none';"."document.getElementById('folder').disabled=false\""), array("Ordner erstellen", "folder", "onclick=\"$folderJS"."document.getElementById('folder').disabled=false\"")); 00188 // Wenn Admin, Dozent oder Tutor, dann darf er auch einen Root Ordner erstellen 00189 if (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"])) { 00190 $radio[] = array("Hauptordner erstellen", "ROOT", "onclick=\"$folderJS"."document.getElementById('folder').disabled=true\""); 00191 } 00192 00193 $form->addRadio("type", $radio, "Aktion wählen:" . (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"]) ? "" : "<br/><span class='text10'>(Hauptordner sind Ordner auf oberster Ebene)</span>"), $actionChecked); 00194 00195 if (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"])) { 00196 $form->addToNextTag("id='student_write'"); 00197 $form->addInput("checkbox", "student_write", "<strong>Nur für Ordner: </strong> Schreibberechtigung für Studenten"); 00198 } 00199 00200 $form->addInput("text", "userfile", "<span id='userfileLink'><strong>Link: </strong>Bitte geben Sie eine URL ein.<br/></span><span id='userfileFolder'><strong>Ordner: </strong>Bitte geben Sie einen Ordnernamen ein.<br/><span class='text10'>(OrdnerName => max. 20 Zeichen)</span></span>", 41, $linkUrl); 00201 $form->addInput("text", "name", "<span id='nameLink'><strong>Link: </strong>Bitte geben Sie einen Namen für den Link an.<br/></span><span id='nameFolder'><strong>Ordner: </strong>Bitte geben Sie einen erläuternden Namen (Tooltip) für den Ordner an.<br/></span><span class='text10'>(max. 40 Zeichen)</span>", 41, $linkName, 40); 00202 } 00203 00204 // SQL Abfragen fuer Unterschiedliche UserGruppen => admin und Dozenten duerfen alle Dateien und Verz. sehen 00205 if (($_SESSION['usergroup'] == STUDENT || $_SESSION['usergroup'] == ALUMNUS || $_SESSION['usergroup'] == SCHUELER || $_SESSION['usergroup'] == GAST) || isset($_SESSION["assistent"])) $sql_add = "AND (userID='".$_SESSION['userid']."' OR (visible_type='1' AND start_time<'$time' AND end_time>'$time' AND student_write=1) )"; 00206 elseif ($_SESSION['usergroup'] == SEKRETARIAT) $sql_add = "AND (userID='".$_SESSION['userid']."' OR visible_type<=2)"; 00207 00208 // Zeichnet die OrdnerListe in Baumstruktur 00209 $folderArr = NULL; 00210 $this->printSubFolder(0, $sql_add, $folderArr, 0, ""); 00211 $selectedFolder = ""; 00212 if (isset($_SERVER["HTTP_REFERER"])) { 00213 if (preg_match("/activeFolder=([0-9]+)/", $_SERVER["HTTP_REFERER"], $selectedFolder)) { 00214 $selectedFolder = $selectedFolder[1]; 00215 } 00216 } 00217 if (!is_array($folderArr)) { 00218 echo "<table>"; 00219 if ($_SESSION['usergroup'] == STUDENT || $_SESSION['usergroup'] == ALUMNUS || $_SESSION['usergroup'] == SCHUELER || $_SESSION['usergroup'] == GAST) Output::errorMessage("Sorry, der Dozent oder Admin hat noch keine Ordner angelegt, deshalb können Sie derzeit keine Dateien hochladen.", 1); 00220 else Output::errorMessage("Sie müssen erst einen Hauptordner anlegen, bevor Studenten etwas hochladen können!", 1); 00221 echo "</table>"; 00222 $form->addLine(" ", "Noch keine Ordner angelegt.<br/>Es ist nicht möglich etwas zu Erstellen oder Hochzuladen."); 00223 } else { 00224 $form->addToNextTag("style='width:300;' id='folder'"); 00225 $form->addSelect("folder", "Bitte geben Sie den Zielordner an".(($_SESSION['usergroup'] == STUDENT || $_SESSION['usergroup'] == ALUMNUS || $_SESSION['usergroup'] == SCHUELER || $_SESSION['usergroup'] == GAST) ? "" : "<br/><span class='text10'>(ist ohne Bedeutung, wenn Sie einen Hauptordner anlegen.)</span>"), $folderArr, count($folderArr) > 10 ? 10 : count($folderArr), false, $selectedFolder); 00226 } 00227 if (!$file_upload) { 00228 $description = (!is_null($copyFile)) ? $copyFile->getDescription() : ""; 00229 $form->addTextArea("comment", "Datei-Beschreibung (optional)", 40, 3, $description); 00230 } 00231 $visibleArr = array(array("Alle", "1"), array("Dozenten und Tutoren", "2"), array("Dozenten", "3")); 00232 $form->addSelect("visible", "Wählen Sie hier die Benutzergruppe aus, die Ihren Eintrag sehen darf:", $visibleArr); 00233 $form->addButtons(); 00234 if (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"]) || (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"]) && $course > 0)) { 00235 // Ueberschriftszeile 00236 $form->addRawCode("<tr><td class='tableHead' colspan='2'>Optionale Einstellungen</td></tr>"); 00237 // Wenn im Foyer dann Alle Anzeigen 00238 if ($course == 0) $names = $db->get_results("SELECT ID, Vorname, Nachname FROM user WHERE Usergroup > 1 AND Invisible = 0 AND ID <> ".$_SESSION["userid"]." ORDER BY Nachname, Vorname"); 00239 else $names = $db->get_results("SELECT ID, Vorname, Nachname, user_course.courseID FROM user, user_course WHERE user.ID=user_course.userID AND user_course.courseID='$course' AND Usergroup > 1 AND userID <> ".$_SESSION["userid"]." ORDER BY Nachname, Vorname"); 00240 // Erstellt UserListe fuer Spezielle Sichtbarkeit 00241 $COUNT = 0; 00242 if (is_array($names)) foreach($names as $name) { 00243 $visibleListArr[$COUNT][0] = Data::toHTML($name->Nachname.", ".$name->Vorname, false); 00244 $visibleListArr[$COUNT++][1] = $name->ID; 00245 } 00246 if (!empty($visibleListArr)) $form->addSelect("visibleList", "Hier können Sie zusätzliche Personen auswählen, die Ihren Eintrag sehen dürfen:<br/>(Für Mehrfachselektierung STRG-Taste beim Klicken gedrückt halten.)<br/><strong>(wird ignoriert, wenn als Benutzergruppe "Alle" ausgewählt ist!)</strong>", $visibleListArr, 10, true); 00247 } 00248 if (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"])) { 00249 $form->addMarker(); 00250 // Email-Benachrichtigungsfunktion 00251 $form->addInput("checkbox", "email", "Benachrichtigung an alle <strong>Mitglieder</strong> per Email?", 0, 1); 00252 $form->addInput("checkbox", "teacherEMail", "Benachrichtigung an alle <strong>Dozenten</strong> per Email?", 0, 1); 00253 $form->addButtons(); 00254 echo $form->getForm(0); 00255 // ************* kalender plugin ************************************** 00256 00257 ?> 00258 <tr> 00259 <td class='tableCell'>Für welche Zeit sichtbar?<br/><span class='text10'>(wenn Sie nichts auswählen ist der Eintrag immer sichtbar)</span></td> 00260 <td class='tableCell'>Anzeigebeginn Datum/Zeit:<br/> 00261 <?php 00262 //falls $_POST - Variablen vorhanden sind, auf das entsprechende Datum einstellen 00263 if (isset($_POST['openDate_day'])) { 00264 $calendar->setDate($_POST['openDate_day'], $_POST['openDate_month'], $_POST['openDate_year']); 00265 $calendar->setTime($_POST['openDate_hour'], $_POST['openDate_minute']); 00266 } 00267 //die Datums Auswahlfelder ausgeben 00268 $calendar->printCalender("openDate", "dateExt"); 00269 $calendar->printCalender("openDate", "time"); 00270 ?> 00271 <br/><br/>Anzeigeende Datum/Zeit:<br/> 00272 <?php 00273 //falls $_POST - Variablen vorhanden sind, auf das entsprechende Datum einstellen 00274 if (isset($_POST['closeDate_day'])) { 00275 $calendar->setDate($_POST['closeDate_day'], $_POST['closeDate_month'], $_POST['closeDate_year']); 00276 $calendar->setTime($_POST['closeDate_hour'], $_POST['closeDate_minute']); 00277 } 00278 $calendar->printCalender("closeDate", "dateExt"); 00279 $calendar->printCalender("closeDate", "time"); 00280 echo " </td>\n</tr>\n"; 00281 // ************* kalender plugin ************************************** 00282 echo $form->getForm(1); 00283 } else { 00284 echo $form->getForm(); 00285 } 00286 }
| Insert::uploadFile | ( | $ | data | ) | [private] |
Laed die Datei mit der fileID $fileID hoch
| array | [$data] Array mit den Formular-Eingaben |
Definition at line 569 of file class.insert.inc.php.
References sendEmail().
Referenced by resolveForm().
00569 { 00570 global $settings; 00571 // Konstruktion des Uploadverzeichnis 00572 $uploaddir = PATH_TO_ROOT.$settings["upload_path"].'filemanager/courseID/'.$data['courseID'].'/'; 00573 // Verzeichnis anlegen wenn noch nicht vorhanden 00574 if (!(is_dir($uploaddir))) Utilities::mkdir_r($uploaddir); 00575 $uploadSuccess = false; 00576 // Datei wird hochgeladen 00577 if (isset($data['tmpfileTmpName'])) { 00578 $uploadSuccess = move_uploaded_file($data['tmpfileTmpName'], $uploaddir.$data['link']); 00579 } else if (isset($data['tmpPathToFile'])) { 00580 $uploadSuccess = copy( $data['tmpPathToFile'], $uploaddir.$data['link'] ); 00581 } 00582 if ( $uploadSuccess ) { 00583 if ($data['tmpemail'] || $data['tmpteacherEMail']) { 00584 if ($this->sendEmail($data['fileID'], ($data['tmpteacherEMail'] && !$data['tmpemail']))) Output::echoMessage("Benachrichtigungs-Mails versandt.", 1); 00585 else Output::errorMessage("Benachrichtigungs-Mails konnten nicht versandt werden!", 1); 00586 } 00587 Output::echoMessage("Datei erfolgreich gesendet", 1); 00588 return true; 00589 } else { 00590 Output::errorMessage("Fehler beim Senden der Datei aufgetreten!", 1); 00591 return false; 00592 } 00593 }
Insert::$forbiddenFileExtensions [private] |
Verbotene Dateiendungen private array
Definition at line 66 of file class.insert.inc.php.
Insert::$maxFileSize [private] |
Die maximale Größe für hochgeladene Dateien. private integer
Definition at line 60 of file class.insert.inc.php.
Insert::$role = null [private] |
Rolle des aktuellen Benutzers, falls eine eingenommen wird. private object
Definition at line 72 of file class.insert.inc.php.
Insert::$team = null [private] |
Team des Benutzers private object
Definition at line 78 of file class.insert.inc.php.
1.6.1